package cc.wsyw126.java.nowcoder.interview;

/**
 * Created by Administrator on 2017/4/23.
 * 请实现一个算法，确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。
 给定一个string iniString，请返回一个bool值,True代表所有字符全都不同，False代表存在相同的字符。
 保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。
 */
public class Different {
    public boolean checkDifferent(String iniString) {
        return !iniString.matches(".*(.)(.*\\1).*");
    }

    public boolean checkDifferent2(String iniString) {
        if (iniString.length() >257) return false;
        for (int i = 0; i < iniString.length(); i++) {
            for (int j = i+1; j < iniString.length(); j++) {
                if ((iniString.charAt(i)^iniString.charAt(j)) == 0) {
                    return false;
                }
            }
        }
        return true;
    }


    public static void main(String[] args) {
        Different different = new Different();
        boolean asd = different.checkDifferent("asdd");
        System.out.println("asd = " + asd);

        boolean asd2 = different.checkDifferent("asdd");
        System.out.println("asd2 = " + asd2);
    }
}
